Description
有 $n$ 个外星人进攻,第 $i$ 个外星出现时间为 $a_i$ ,距离为 $d_i$ ,必须在时间 $b_i$ 前被消灭。
你的武器可以设置任何给定的功率。如果被设置了功率 $R$,它会摧毁距离在 $R$ 及以内的所有外星人,同时消耗 $R$ 单位的燃料。
求存活条件下最少要消耗多少燃料。
数据范围:$n<=300 , 1<=a_i<b_i<=10000 , 1<=d_i<=10000$
Solution
设 $f[i][j]$ 为消灭 $i–j$ 时间内外星人的最少花费。设这段区间最晚出现的外星人编号为 $id$,则转移方程为:
$f[i][j]=min(f[i][j],f[i][k-1]+a[id].d+f[k+1][j])$
如果开二维数组,$10000$ 有点太大。题面只出现了 $300$ 个外星人,可以离散化。
Code
1 |
|